package com.cskaoyan.javase._1extends._8hidden;

import com.cskaoyan.javase._1extends._8hidden.test.TestA;
import javafx.animation.Animation;

/**
 * 引用的数据类型就会限制该引用的访问范围：
 *      1.如果子类引用指向子类对象，那么编译器就识别是一个子类对象，就可以访问“父类 + 子类”。
 *      2.如果父类引用指向子类对象，那么编译器就识别是一个“父类对象”，那么只能访问父类，不能访问子类。
 *      这就是引用决定了访问范围的内在原因。
 *
 * @since 10:06
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo2 extends TestA {
    public static void main(String[] args) {
        // Cat c = (Cat) new Animal();
        // System.out.println(c.a);
        // System.out.println(c.b);

        TestA t = new TestA();
        // t.a
        Demo2 d = new Demo2();
        System.out.println(d.num);

        // 父类引用指向子类对象
        TestA t2 = new Demo2();
        System.out.println(((Demo2) t2).num);
    }
}

class Animal {
    int a = 10;
}

class Cat extends Animal {
    int b = 20;
}
